package com.xusheng.cli.mapper;

import com.xusheng.cli.common.base.MyBaseMapper;
import com.xusheng.cli.entity.userModule.AdminMenuVO;
import com.xusheng.cli.entity.userModule.AssociatedRoleDTO;
import com.xusheng.cli.entity.userModule.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 总后台用户表(User)表数据库访问层
 *
 * @author jy
 * @since 2022-01-17 12:08:36
 */
public interface UserMapper extends MyBaseMapper<User> {

	String getIpWhitelist(@Param("userId") Long userId);

	Boolean setIpWhitelist(@Param("ipWhitelist") String ipWhitelist, @Param("userId") Long userId);

	/**
	 * 移除用户分配的角色
	 *
	 * @param params
	 * @return com.northeastern.university.common.model.JsonData
	 * @author jy
	 * @date 2019/12/30 10:46
	 */
	void removeAssociatedRole(AssociatedRoleDTO params);

	/**
	 * 给用户分配角色
	 *
	 * @param params
	 * @return com.northeastern.university.common.model.JsonData
	 * @author jy
	 * @date 2019/12/30 10:46
	 */
	int associatedRole(AssociatedRoleDTO params);

	/**
	 * 获取当前登录人菜单
	 *
	 * @param userId
	 * @return
	 * @author jy
	 * @since 2022/1/17 14:09
	 */
	List<AdminMenuVO> getMenuListByUserId(Long userId);

	/**
	 * 通过用户id 查询用户所有角色code
	 *
	 * @param id 用户id
	 * @author jy
	 * @since 2021/11/17 17:10
	 */
	List<String> selectRoleCodeByUserId(Long id);

}

